The present disclosure relates to auto-cloudifying applications in a runtime environment. More particularly, the present disclosure relates to replacing isolated runtime constructs with distributed runtime constructs while executing software applications originally designed to execute in an isolated runtime environment.
Software developers design software applications according to computing environment constraints of a particular computer system. For example, a software developer may include runtime constructs such as global variables and local disk access commands in a software application intended for a computer system executing an isolated, single instance of the software application. The software developer, however, does include such runtime constructs in a software application intended for a distributed computing environment that invokes multiple software application instances. Cloud computing is a form of a distributed computing environment that stores information, such as programs and data, in a “cloud” that supports multiple users and multiple software application instances.
In some situations for simplicity purposes, a software developer may write a software application prototype based on single-instance constraints even though a distributed computing environment is the software application's final computing environment. In these situations, after the software developer debugs the software application, the software developer changes various runtime constructs for the software application to execute correctly in a distributed computing environment.